In distributed computing systems having a service oriented architecture, services may be provided by multiple servers at various locations. For a client to utilize available services, the client must know an address of the service, and a policy of the service (including protocol and message format requirements). In conventional service oriented architectures, service addresses and service policies are maintained in a message registry along with service descriptions.
When a service policy changes (e.g., service capabilities change, message context requirements change, etc.), or a service address changes, the service registry must be updated before clients can successfully use the modified service. However, service registries are updated on a periodic basis. Therefore, there is a lag between when a service is updated (e.g., new service capabilities are added, existing service capabilities are removed, or service is moved), and when the updated service may be used by clients. Moreover, for some clients it may be burdensome to query the service registry for new service information when service capabilities are changed.